﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BaseLinQ.DataContex;
using Core;
using DevExpress.Web.ASPxClasses.Internal;
using DevExpress.Web.ASPxGridView;
using RBAC;
using Solution.AppCode;
using ConfigurationSettings = System.Configuration.ConfigurationSettings;

namespace Solutions.Admin.QuanLyTaiNguyen
{
    public partial class QuanLyTaiNguyen : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadGrid();
                
            }
            if (grdTaiNguyen.IsCallback)
            {
                LoadGrid();

            }
        }

        protected void LoadGrid()
        {
            DataSet dts = null;
            DataTable dt = null;
            TaiNguyenLogic logic = new TaiNguyenLogic();
            // dt = logic.GetList();
            grdTaiNguyen.DataSource = logic.GetList();
            grdTaiNguyen.DataBind();

        }

        public void grdTest_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
        {
            int id = Convert.ToInt32(e.KeyValue);
            TaiNguyenLogic logic = new TaiNguyenLogic();
            switch (e.CommandArgs.CommandName)
            {
                case "Edit":
                    // ASPxPopupControl1.ShowOnPageLoad = true;
                    // ScriptManager.RegisterStartupScript(this, this.GetType(), "Thông báo", "alert('Bạn chưa nhập số di động! " + id + "');", true);
                    LoadFromByID(id);
                    btnLuuLai.Visible = false;
                    btcapnhat.Visible = true;
                    wdsQuanLyPhanQuyen.ShowOnPageLoad = true;
                    Session.Add("Id", id);
                    break;
                case "Delete":
                    string strConnectionString = ConfigurationSettings.AppSettings["ConnectString"];
                   var  db = new RBACDataContext(strConnectionString);
                    tbl_Quyen objQuyen = (from m in db.tbl_Quyens
                                          where m.fk_iTaiNguyenID == id
                                          && m.bKichHoat == true
                                          select m).FirstOrDefault<tbl_Quyen>();
                    if (objQuyen != null)
                    {
                        Tools.Message(this.Page,"Không thể xóa vì tài nguyên đc sủ dụng tại Quản lý Quyền!");
                        return;
                    }
                    else
                    {
                        if (logic.Delete(id))
                        {
                            Tools.Message(this.Page,"Xóa thành công!");
                            LoadGrid();
                            //pgToolsbar.SetPageIndex(1);
                        }
                        else
                        {
                            Tools.Message(this.Page,"Xóa thất bại!");
                        }
                    }
                    break;
            }
        }

        protected void bt_donglai(object sender, EventArgs e)
        {
            ResetForm();
        }

        protected void bt_themmoi(object sender, EventArgs e)
        {
           
            btcapnhat.Visible = false;
            btnLuuLai.Visible = true;
           
            wdsQuanLyPhanQuyen.ShowOnPageLoad = true;
        }

       

        protected void CapNhat_Click(object sender, EventArgs e)
        {
            TaiNguyenLogic logic = new TaiNguyenLogic();
            tbl_TaiNguyen objTaiNguyen = GetObjectFromForm();
            int shrTaiNguyenID = int.Parse("0" + Session["Id"].ToString());
            objTaiNguyen.pk_iTaiNguyenID = shrTaiNguyenID;
            if (Tools.ChuanHoaXau(txtmatainguyen.Text) == "")
            {
                txtmatainguyen.Text = Tools.ChuanHoaXau(txtmatainguyen.Text);
                Tools.Message(this.Page,"Mã tài nguyên không được bỏ trống");
                txtmatainguyen.Focus();
                return;
            }
            if (Tools.ChuanHoaXau(txttentainguyen.Text) == "")
            {
                txttentainguyen.Text = Tools.ChuanHoaXau(txttentainguyen.Text);
                Tools.Message(this.Page,"Tên tài nguyên không được bỏ trống");
                txttentainguyen.Focus();
                return;
            }
            if (logic.GetByCodeID(txtmatainguyen.Text.Trim(), shrTaiNguyenID) != null)
            {
                Tools.Message(this.Page,"Mã tài nguyên đã tồn tại");
                return;
            }
            try
            {
                if (logic.Update(objTaiNguyen))
                {
                    Tools.Message(this.Page,"Cập nhật thành công!");
                    LoadGrid();
                }
                else
                {
                    Tools.Message(this.Page,"Cập nhật thất bại!");
                }
            }
            catch (Exception ex)
            {
                
                Tools.Message(this.Page,"Cập nhật thất bại!");
            }
            wdsQuanLyPhanQuyen.ShowOnPageLoad=false;
            logic = null;
        }

        protected void LuuLai_Click(object sender, EventArgs e)
        {
           
            if (txtmatainguyen.Text == "")
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Thông báo",
                                                    "alert('Mã tài nguyên không được để trống!');", true);
                wdsQuanLyPhanQuyen.ShowOnPageLoad = true;
                txtmatainguyen.Focus();
                return;
            }
            if (txttentainguyen.Text == "")
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Thông báo",
                                                    "alert('Tên tài nguyên không được để trống!');", true);
                wdsQuanLyPhanQuyen.ShowOnPageLoad = true;
                txttentainguyen.Focus();
                return;
            }

            TaiNguyenLogic logic = new TaiNguyenLogic();
            tbl_TaiNguyen objTaiNguyen = GetObjectFromForm();
            objTaiNguyen.bKichHoat = true;
            objTaiNguyen.fk_iNguoiTaoID = Utils.GetUserId();
            objTaiNguyen.fk_iNguoiCapNhatID = Utils.GetUserId();
            
            if (logic.GetByCode(txtmatainguyen.Text.Trim()) != null)
            {
                Tools.Message(this.Page,"Mã tài nguyên đã tồn tại");
                return;
            }
            if (logic.Insert(objTaiNguyen))
            {
                Tools.Message(this.Page,"Thêm thành công!");
               ResetForm();
                txtmatainguyen.Focus();
                LoadGrid();
                //windowAsk.Hidden = false;
            }
            else
            {
                Tools.Message(this.Page,"Thêm thất bại! Xin kiểm tra lại dữ liệu nhập vào!");
            }
            wdsQuanLyPhanQuyen.ShowOnPageLoad = false;
            ResetForm();
        }

        protected void ResetForm()
        {
            txtmatainguyen.Text = "";
            txttentainguyen.Text = "";
            txtghichu.Text = "";
        }
        public void LoadFromByID(int _intTaiNguyenID)
        {
            TaiNguyenLogic logic = new TaiNguyenLogic();
            tbl_TaiNguyen objTaiNguyen = logic.GetByID(_intTaiNguyenID);
            if (objTaiNguyen != null && objTaiNguyen.pk_iTaiNguyenID > 0)
            {
                txttentainguyen.Text = objTaiNguyen.sTenTaiNguyen;
                txtmatainguyen.Text = objTaiNguyen.sMaTaiNguyen;
                txtghichu.Text = objTaiNguyen.sGhiChu;
            }
            logic = null;
        }
        public tbl_TaiNguyen GetObjectFromForm()
        {
            Utils util = new Utils();
            tbl_TaiNguyen objRes = new tbl_TaiNguyen();
            objRes.sTenTaiNguyen = Tools.ChuanHoaXau(txttentainguyen.Text);
            objRes.sMaTaiNguyen = txtmatainguyen.Text;
            objRes.sGhiChu = Tools.ChuanHoaXau(txtghichu.Text);
            objRes.fk_iNguoiCapNhatID = Utils.GetUserId();
            return objRes;
        }
       
       
    }
}

